<?xml version="1.0" ?>
<xsd:schema targetNamespace="http://schemas.microsoft.com/data/udc" xmlns="http://schemas.microsoft.com/data/udc" xmlns:udcxf="http://schemas.microsoft.com/data/udc/xmlfile" xmlns:udcs="http://schemas.microsoft.com/data/udc/soap" xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xsd:import namespace="http://schemas.microsoft.com/data/udc/xmlfile" schemaLocation="udcxmlfile.xsd" />
	<xsd:import namespace="http://schemas.microsoft.com/data/udc/soap" schemaLocation="udcsoap.xsd" />
	<xsd:import namespace="http://schemas.xmlsoap.org/soap/envelope/" schemaLocation="http://schemas.xmlsoap.org/soap/envelope/" />
	<xsd:annotation>
		<xsd:documentation>
			Permission to copy, display and distribute the contents of this document (the “Specification”), in any medium for any purpose without fee or royalty is hereby granted, provided that you include the following notice on ALL copies of the Specification, or portions thereof, that you make:
			Copyright (c) Microsoft Corporation.  All rights reserved.  Permission to copy, display and distribute this document is available at:  http://msdn.microsoft.com/library/en-us/odcXMLRef/html/odcXMLRefLegalNotice.asp?frame=true.  
			No right to create modifications or derivatives of this Specification is granted herein.
			There is a separate patent license available to parties interested in implementing software programs that can read and write files that conform to the Specification.  This patent license is available at this location:  http://www.microsoft.com/mscorp/ip/format/xmlpatentlicense.asp.
			THE SPECIFICATION IS PROVIDED "AS IS" AND MICROSOFT MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTS OF THE SPECIFICATION ARE SUITABLE FOR ANY PURPOSE; NOR THAT THE IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
			MICROSOFT WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF OR RELATING TO ANY USE OR DISTRIBUTION OF THE SPECIFICATION.
			The name and trademarks of Microsoft may NOT be used in any manner, including advertising or publicity pertaining to the Specification or its contents without specific, written prior permission. Title to copyright in the Specification will at all times remain with Microsoft.
			No other rights are granted by implication, estoppel or otherwise.
		</xsd:documentation>
	</xsd:annotation>
	<xsd:element name="DataSource">
		<xsd:annotation>
			<xsd:documentation>Provides a root node container for the UDC (Universal Data Connection) elements that describe a connection to a data source.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:all>
				<xsd:element name="Type" minOccurs="0" maxOccurs="1">
					<xsd:annotation>
						<xsd:documentation>Contains the attributes and elements that define the type of connection described by the UDC file.</xsd:documentation>
					</xsd:annotation>
					<xsd:complexType>
						<xsd:sequence>
							<xsd:element name="SubType" minOccurs="0">
								<xsd:annotation>
									<xsd:documentation>Further describes the type of connection to the data source. One example is the DSP sub-type for binding SOAP data.</xsd:documentation>
								</xsd:annotation>
								<xsd:complexType>
									<xsd:sequence>
										<xsd:any processContents="skip" minOccurs="0" />
									</xsd:sequence>
									<xsd:attribute name="Type" type="xsd:string" use="required">
										<xsd:annotation>
											<xsd:documentation>Specifies which of the three types of data binding to use for the data connection: SOAP, XMLFile (for accessing XML files), or PartToPart (for communicating between Web Parts).</xsd:documentation>
										</xsd:annotation>
									</xsd:attribute>
									<xsd:attribute name="MinorVersion" type="xsd:string" use="required">
										<xsd:annotation>
											<xsd:documentation>Defines the format version of the elements defined by this Type.</xsd:documentation>
										</xsd:annotation>
									</xsd:attribute>
									<xsd:attribute name="MajorVersion" type="xsd:string" use="required">
										<xsd:annotation>
											<xsd:documentation>Defines the format version of the elements defined by this Type.</xsd:documentation>
										</xsd:annotation>
									</xsd:attribute>
								</xsd:complexType>
							</xsd:element>
						</xsd:sequence>
						<xsd:attribute name="Type" use="required">
							<xsd:annotation>
								<xsd:documentation>Specifies which of the three types of data binding to use for the data connection: SOAP, XMLFile (for accessing XML files), or PartToPart (for communicating between Web Parts).</xsd:documentation>
							</xsd:annotation>
							<xsd:simpleType>
								<xsd:restriction base="xsd:string">
									<xsd:enumeration value="SOAP" />
									<xsd:enumeration value="XMLFile" />
									<xsd:enumeration value="PartToPart" />
								</xsd:restriction>
							</xsd:simpleType>
						</xsd:attribute>
						<xsd:attribute name="MajorVersion" type="xsd:string" use="required">
							<xsd:annotation>
								<xsd:documentation>Defines the format version of the elements defined by this Type.</xsd:documentation>
							</xsd:annotation>
						</xsd:attribute>
						<xsd:attribute name="MinorVersion" type="xsd:string" use="required">
							<xsd:annotation>
								<xsd:documentation>Defines the format version of the elements defined by this Type.</xsd:documentation>
							</xsd:annotation>
						</xsd:attribute>
					</xsd:complexType>
				</xsd:element>
				<xsd:element name="Name" type="xsd:string" minOccurs="0">
					<xsd:annotation>
						<xsd:documentation>Contains the name of the data source that is used in the data source catalog.</xsd:documentation>
					</xsd:annotation>
				</xsd:element>
				<xsd:element name="ConnectionInfo" type="ConnectionInfoType" minOccurs="0">
					<xsd:annotation>
						<xsd:documentation>Contains information specific to a particular type of data connection.</xsd:documentation>
					</xsd:annotation>
				</xsd:element>
				<xsd:element name="Description" type="xsd:string" minOccurs="0">
					<xsd:annotation>
						<xsd:documentation>Contains a description of the data source.</xsd:documentation>
					</xsd:annotation>
				</xsd:element>
				<xsd:element name="Keywords" type="xsd:string" minOccurs="0">
					<xsd:annotation>
						<xsd:documentation>Specifies a comma-separated list of keywords describing the data source.</xsd:documentation>
					</xsd:annotation>
				</xsd:element>
				<xsd:element name="TooltipInfo" type="xsd:string" minOccurs="0">
					<xsd:annotation>
						<xsd:documentation>Specifies the string to be displayed in the ScreenTip for the data source in the data source catalog.</xsd:documentation>
					</xsd:annotation>
				</xsd:element>
			</xsd:all>
			<xsd:attribute name="MinorVersion" type="xsd:string" use="required">
				<xsd:annotation>
					<xsd:documentation>Defines the format version of the common UDC elements.</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name="MajorVersion" type="xsd:string" use="required">
				<xsd:annotation>
					<xsd:documentation>Defines the format version of the common UDC elements.</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
	<xsd:complexType name="ConnectionInfoType">
		<xsd:annotation>
			<xsd:documentation>Contains information specific to a particular type of data connection.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:choice minOccurs="0">
				<xsd:sequence minOccurs="0">
					<xsd:element ref="udcs:Location" />
					<xsd:element ref="udcs:Authentication" minOccurs="0" />
					<xsd:element ref="udcs:SOAPAction" />
					<xsd:element ref="soap-env:Header" />
					<xsd:element ref="soap-env:Body" minOccurs="0" />
				</xsd:sequence>
				<xsd:element ref="udcxf:File" minOccurs="0" />
			</xsd:choice>
			<xsd:element name="ClientParameterBindings" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Contains parameters that provide a way for the client processing the UDC to perform text replacement anywhere within the ConnectionInfo section.</xsd:documentation>
				</xsd:annotation>
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="ClientParameterBinding" minOccurs="0">
							<xsd:annotation>
								<xsd:documentation>Does not apply to Excel data connections.</xsd:documentation>
							</xsd:annotation>
							<xsd:complexType>
								<xsd:attribute name="Name" type="xsd:string" use="required">
									<xsd:annotation>
										<xsd:documentation>Does not apply to Excel data connections.</xsd:documentation>
									</xsd:annotation>
								</xsd:attribute>
								<xsd:attribute name="Location" type="xsd:string" use="optional">
									<xsd:annotation>
										<xsd:documentation>Does not apply to Excel data connections.</xsd:documentation>
									</xsd:annotation>
								</xsd:attribute>
								<xsd:attribute name="Item" type="xsd:string" use="optional">
									<xsd:annotation>
										<xsd:documentation>Does not apply to Excel data connections.</xsd:documentation>
									</xsd:annotation>
								</xsd:attribute>
								<xsd:attribute name="DefaultValue" type="xsd:string" use="optional">
									<xsd:annotation>
										<xsd:documentation>Does not apply to Excel data connections.</xsd:documentation>
									</xsd:annotation>
								</xsd:attribute>
							</xsd:complexType>
						</xsd:element>
						<xsd:element name="CredentialBinding" minOccurs="0">
							<xsd:annotation>
								<xsd:documentation>Contains information necessary to prompt the user for credentials and resolve any associated CredentialValue elements in the ConnectionInfo section.</xsd:documentation>
							</xsd:annotation>
							<xsd:complexType>
								<xsd:sequence>
									<xsd:element name="Credential" minOccurs="0" maxOccurs="unbounded">
										<xsd:annotation>
											<xsd:documentation>Contains the details of a particular set of credentials.</xsd:documentation>
										</xsd:annotation>
										<xsd:complexType>
											<xsd:attribute name="Type" type="xsd:string" use="optional">
												<xsd:annotation>
													<xsd:documentation>Specifies the type for a particular set of credentials. This attribute and the Resource attribute are used to match a CredentialBinding element with a CredentialValue element.</xsd:documentation>
												</xsd:annotation>
											</xsd:attribute>
											<xsd:attribute name="DefaultValue" type="xsd:string" use="optional">
												<xsd:annotation>
													<xsd:documentation>Does not apply to Excel data connections.</xsd:documentation>
												</xsd:annotation>
											</xsd:attribute>
										</xsd:complexType>
									</xsd:element>
								</xsd:sequence>
								<xsd:attribute name="Resource" type="xsd:string" use="required">
									<xsd:annotation>
										<xsd:documentation>Specifies a string that represents the resource to be used with a particular set of credentials. This attribute and the Type attribute are used to match a CredentialBinding element with a CredentialValue element.</xsd:documentation>
									</xsd:annotation>
								</xsd:attribute>
							</xsd:complexType>
						</xsd:element>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
			<xsd:element ref="ClientParameterValue" minOccurs="0" />
			<xsd:element name="Attribute" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Does not apply to Excel data connections.</xsd:documentation>
				</xsd:annotation>
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="ClientParameterBinding">
							<xsd:annotation>
								<xsd:documentation>Does not apply to Excel data connections.</xsd:documentation>
							</xsd:annotation>
							<xsd:complexType>
								<xsd:attribute name="Name" type="xsd:string" use="required">
									<xsd:annotation>
										<xsd:documentation>Does not apply to Excel data connections.</xsd:documentation>
									</xsd:annotation>
								</xsd:attribute>
								<xsd:attribute name="Location" type="xsd:string" use="optional">
									<xsd:annotation>
										<xsd:documentation>Does not apply to Excel data connections.</xsd:documentation>
									</xsd:annotation>
								</xsd:attribute>
								<xsd:attribute name="Item" type="xsd:string" use="optional">
									<xsd:annotation>
										<xsd:documentation>Does not apply to Excel data connections.</xsd:documentation>
									</xsd:annotation>
								</xsd:attribute>
								<xsd:attribute name="DefaultValue" type="xsd:string" use="optional">
									<xsd:annotation>
										<xsd:documentation>Does not apply to Excel data connections.</xsd:documentation>
									</xsd:annotation>
								</xsd:attribute>
								<xsd:attribute name="Encode" type="xsd:string" use="optional">
									<xsd:annotation>
										<xsd:documentation>Does not apply to Excel data connections.</xsd:documentation>
									</xsd:annotation>
								</xsd:attribute>
							</xsd:complexType>
						</xsd:element>
					</xsd:sequence>
					<xsd:attribute name="Name" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>Does not apply to Excel data connections.</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="If" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Does not apply to Excel data connections.</xsd:documentation>
				</xsd:annotation>
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element ref="ClientParameterValue" />
					</xsd:sequence>
					<xsd:attribute name="ClientParameter" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>Does not apply to Excel data connections.</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
				</xsd:complexType>
			</xsd:element>
			<xsd:element ref="CredentialValue" minOccurs="0" />
		</xsd:sequence>
		<xsd:attribute name="Purpose" type="xsd:string" use="required">
			<xsd:annotation>
				<xsd:documentation>Contains a string that is used to distinguish multiple ConnectionInfo elements.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:complexType>
	<xsd:element name="ClientParameterValue">
		<xsd:annotation>
			<xsd:documentation>Does not apply to Excel data connections.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType mixed="true">
			<xsd:attribute name="Name" type="xsd:string" use="required">
				<xsd:annotation>
					<xsd:documentation>Does not apply to Excel data connections.</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="CredentialValue">
		<xsd:annotation>
			<xsd:documentation>Contains information necessary to prompt the user for credentials and resolve any associated CredentialValue elements in the ConnectionInfo section.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:attribute name="Resource" type="xsd:string">
				<xsd:annotation>
					<xsd:documentation>Specifies a string that represents the resource to be used with a particular set of credentials. This attribute and the Type attribute are used to match a CredentialBinding element with a CredentialValue element.</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name="Type" type="xsd:string">
				<xsd:annotation>
					<xsd:documentation>Specifies the type for a particular set of credentials. This attribute and the Resource attribute are used to match a CredentialBinding element with a CredentialValue element.</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
</xsd:schema>